/*
解释:函数式组件就是函数是组件

函数式组件与普通组件的区别
1.函数式组件需要在声明组件是指定 functional
2.不需要实例化，所以没有this,this通过render函数的第二个参数来代替
3.没有生命周期钩子函数，不能使用计算属性，watch
4.不能通过$emit 对外暴露事件，调用事件只能通过context.listeners.click的方式调用外部传入的事件
5.因为函数式组件是没有实例化的，所以在外部通过ref去引用组件时，实际引用的是HTMLElement
6.函数式组件的props可以不用显示声明，所以没有在props里面声明的属性都会被自动隐式解析为prop,而普通组件所有未声明的属性都
解析到$attrs里面，并自动挂载到组件根元素上面(可以通过inheritAttrs属性禁止)
7.只是个函数式组件传递一些数据 但是他不做任何的响应

优点
1.由于函数式组件不需要实例化，无状态，没有生命周期，所以渲染性能要好于普通组件 
2.函数式组件结构比较简单，代码结构更清晰


业务场景
比如一些详情页面，列表界面等，它们有一个共同的特点是只需要将外部传入的数据进行展现，不需要有内部状态，不需要在生命周期钩子函数里面做处理，这时候你就可以考虑使用函数式组件。
*/
export default {
  // 通过functional属性指定组件为函数式组件
  functional: true,
  props:{
      name:String,
      time:Number,
      renderFunc:Function
  },
  //第一个参数就是mian里的那个h,第二个参数就是一个'实例',因为函数式组件没有实例这里就用ctx代替当前对象能获取到当前对象的属性
  render:(h,ctx)=>{
    //这里返回出去的值在创建renderFunc事件的地方能接收到
    return ctx.props.renderFunc(h,ctx.props.name,ctx.props.time)
  }
}